Skip to content
Closed
Changes from 1 commit
Commits
Show all changes
131 commits
Select commit Hold shift + click to select a range
7c1cbc9
Update README title from '.NET SDK' to 'SDK Samples' (#1)
pontemonti Nov 5, 2025
d81af2c
Added CODEOWNERS and .gitignore files (#2)
pontemonti Nov 5, 2025
c3c1e74
Add .NET Semantic Kernel Sample Agent (#3)
pontemonti Nov 5, 2025
1d90369
Update License to MIT License (#4)
rahuldevikar761 Nov 5, 2025
39a239c
Added Python OpenAI sample (#5)
pontemonti Nov 5, 2025
6f236de
Add LangChain Sample (#7)
JesuTerraz Nov 5, 2025
4cbd949
Add Node.js Claude Sample Agent (#6)
pontemonti Nov 6, 2025
1c0b548
Fix Agent Notifs and update env (#8)
JesuTerraz Nov 6, 2025
ea11209
[Python][AgentFramework] Adding Python Agent Framework Sample (#9)
JesuTerraz Nov 6, 2025
9b124ba
Add TM (#11)
rahuldevikar761 Nov 7, 2025
e99aa17
Revise README for Agent 365 Sample Agent (#13)
pontemonti Nov 7, 2025
d221266
Add TM (#14)
rahuldevikar761 Nov 7, 2025
e733e9c
Update Agents SDK for LangChain Sample (#15)
JesuTerraz Nov 7, 2025
45fffa8
Adding Notifications on AF (#16)
mrunalhirve128 Nov 10, 2025
0b9adea
Add Copilot instructions for code review and validation (#21)
rahuldevikar761 Nov 11, 2025
db60215
Update Sample with API Change (#19)
JesuTerraz Nov 11, 2025
1b01b67
Adding Vercel AI SDK sample with claude model (#23)
dbezic Nov 11, 2025
7716ce5
Add n8n sample agent (#24)
rbrighenti Nov 12, 2025
75e3a7d
Correct example agent name to use correct casing in line with n8n (#26)
rbrighenti Nov 12, 2025
cadc62f
Introducing perplexity Sample Agent (#18)
aubreyquinn Nov 12, 2025
d521cf1
Add OpenAI Nodejs Sample (#28)
JesuTerraz Nov 12, 2025
fea98e1
Rename "Microsoft Agents A365" to "Microsoft Agent 365" in documentat…
Copilot Nov 12, 2025
51edfde
Add Devin Agent Sample (#22)
walterluna Nov 12, 2025
45854e9
Fix OpenAI JS ToolingManifest (#33)
JesuTerraz Nov 13, 2025
35b4a33
add updated nodejs claude implementation (#32)
msftairaamane Nov 13, 2025
224b2dc
Quickstart LangChain Agent (#25)
JesuTerraz Nov 13, 2025
2398b60
Introducing Playground notification handling in Perplexity agent (#34)
aubreyquinn Nov 13, 2025
000ff20
Add Cursor IDE Prompt Guide for Agent365 (#29)
shinsi-fathima-rahman Nov 13, 2025
348b4a9
Update samples to remove environment id from calls and settings (#10)
joratz Nov 13, 2025
6c78dbe
Fix formatting of 'Microsoft Agent365' to 'Microsoft Agent 365' (#39)
pontemonti Nov 13, 2025
292c85c
add quickstart claude agent before A365 extension (#42)
msftairaamane Nov 14, 2025
a5b3168
Update package.json description for clarity (#45)
pontemonti Nov 14, 2025
e8dccd5
Update devin agent sample (#48)
walterluna Nov 14, 2025
42e7d80
updating samples read me docs (#47)
abdulanu0 Nov 15, 2025
df4e892
Update Node.js OpenAI sample (#50)
pontemonti Nov 17, 2025
03f59e9
Introducing thinking indicator in Perplexity sample agent (#37)
aubreyquinn Nov 17, 2025
4112c7a
updating auth handler (#53)
abdulanu0 Nov 18, 2025
2430fd0
Update Python Agent Framework sample (#58)
pontemonti Nov 18, 2025
684a02c
Update Python OpenAI sample agent (#57)
pontemonti Nov 18, 2025
251c405
Introducing observability in Perplexity agent (#44)
aubreyquinn Nov 18, 2025
acc29c9
Add prompt injection defense to agent system prompt (#40)
efpiva Nov 18, 2025
8d931c9
Update Package References to Use npm Registry + Remove local preinsta…
JesuTerraz Nov 18, 2025
0971787
Add temporariy thumbnails to the related samples (#63)
Alive-Fish Nov 18, 2025
7bbfda7
Update .NET Semantic Kernel Sample Agent (#61)
pontemonti Nov 19, 2025
df82639
Update tooling manifest (#60)
pontemonti Nov 19, 2025
f473a8a
Introducing Microsoft Teams manifest file for Perplexity (#51)
aubreyquinn Nov 19, 2025
004f8a2
Add manifest template for n8n Sample (#49)
rbrighenti Nov 19, 2025
6dc7d20
Potential fix for code scanning alert no. 1: Workflow does not contai…
pontemonti Nov 19, 2025
9e8d76d
Add CI workflow for Node.js OpenAI sample agent (#65)
pontemonti Nov 19, 2025
ffaa2ea
Remove local reference in python samples (#62)
JesuTerraz Nov 19, 2025
132d1c3
Google ADK Sample with Tooling (#70)
JesuTerraz Nov 20, 2025
9794391
Updated formatting on readme file (#71)
aubreyquinn Nov 20, 2025
1611d2e
Perplexity: introducing the published agents-a365 packages (#72)
aubreyquinn Nov 20, 2025
c086ffc
Add Devin Agent's manifest sample (#52)
walterluna Nov 20, 2025
c44f444
reference public package dependencies (#64)
walterluna Nov 20, 2025
805f9ae
Perplexity: added telemetry markers to all paths in the code (#73)
aubreyquinn Nov 20, 2025
aa4c676
Updated the scope for messaging. (#78)
Reza-sh Nov 21, 2025
29c31bf
post public documentation changes (#80)
shinsi-fathima-rahman Nov 21, 2025
764ec3b
Adding points for the users who contributed towards code review & qua…
LavanyaK235 Nov 24, 2025
4083f53
Add Agent Framework and Semantic Kernel enhancements (#85)
MattB-msft Nov 25, 2025
7b293c3
Fix agentic user token retrieval for n8n Sample (#75)
rbrighenti Nov 26, 2025
0af6f5c
Add package-lock.json to .gitignore (#76)
pontemonti Dec 1, 2025
462149b
Delete nodejs/claude/quickstart-before/package-lock.json (#88)
pontemonti Dec 1, 2025
889e04f
Update activity for sample application
tirthdoshi009 Dec 1, 2025
1e660f6
Update activity for sample application
tirthdoshi009 Dec 1, 2025
fb91b81
Update python/agent-framework/sample-agent/host_agent_server.py
tirthdoshi009 Dec 1, 2025
d66f523
Update python/agent-framework/sample-agent/host_agent_server.py
tirthdoshi009 Dec 1, 2025
447ad69
Adding docker file to run the container
tirthdoshi009 Dec 3, 2025
a7ddfd7
Adding docker file to run the container
tirthdoshi009 Dec 3, 2025
739305f
Merge branch 'users/tirthdoshi/local-playground' of https://github.co…
tirthdoshi009 Dec 3, 2025
6c7b64f
Merge branch 'users/tirthdoshi/local-playground' of https://github.co…
tirthdoshi009 Dec 3, 2025
b424420
Add the generated workflow file
tirthdoshi009 Dec 3, 2025
7aedf72
Add the generated workflow file
tirthdoshi009 Dec 3, 2025
11e4b91
Dummy push for running
tirthdoshi009 Dec 3, 2025
147dac1
Dummy push for running
tirthdoshi009 Dec 3, 2025
5a25573
Automate RG as well
tirthdoshi009 Dec 3, 2025
6769aa0
Automate RG as well
tirthdoshi009 Dec 3, 2025
acb5b3d
Create a docker image
tirthdoshi009 Dec 3, 2025
99cba82
Create a docker image
tirthdoshi009 Dec 3, 2025
16a6f7a
Update directory structure
tirthdoshi009 Dec 3, 2025
910fa5a
Update directory structure
tirthdoshi009 Dec 3, 2025
ca7662d
Remove Docker Buildx setup to fix docker-compose context error
tirthdoshi009 Dec 3, 2025
e90a8c0
Remove Docker Buildx setup to fix docker-compose context error
tirthdoshi009 Dec 3, 2025
d8207dc
Remove Docker Buildx setup to fix docker-compose context error
tirthdoshi009 Dec 3, 2025
8f9364a
Remove Docker Buildx setup to fix docker-compose context error
tirthdoshi009 Dec 3, 2025
12b29e6
Check directory structure
tirthdoshi009 Dec 3, 2025
75fafb2
Check directory structure
tirthdoshi009 Dec 3, 2025
c970c26
Fix docker environment vars
tirthdoshi009 Dec 3, 2025
3e42674
Fix docker environment vars
tirthdoshi009 Dec 3, 2025
5e16ae4
Docker image build
tirthdoshi009 Dec 3, 2025
730d539
Docker image build
tirthdoshi009 Dec 3, 2025
714b7c6
Remove fixing environment vars and debug
tirthdoshi009 Dec 3, 2025
71f385d
Remove fixing environment vars and debug
tirthdoshi009 Dec 3, 2025
8aab1a5
ACR login simplified
tirthdoshi009 Dec 3, 2025
7af4c80
ACR login simplified
tirthdoshi009 Dec 3, 2025
1a333e4
Get tocken
tirthdoshi009 Dec 3, 2025
2263d77
Get tocken
tirthdoshi009 Dec 3, 2025
f2a1256
simplify workflow
tirthdoshi009 Dec 3, 2025
5de1417
simplify workflow
tirthdoshi009 Dec 3, 2025
80f6f1f
Fix docker context
tirthdoshi009 Dec 3, 2025
a0decdb
Fix docker context
tirthdoshi009 Dec 3, 2025
56ccfca
Add permissions
tirthdoshi009 Dec 3, 2025
8b343c5
Add permissions
tirthdoshi009 Dec 3, 2025
3d69c71
Add a debug step
tirthdoshi009 Dec 3, 2025
fb7b831
Add a debug step
tirthdoshi009 Dec 3, 2025
7009477
Build docker image, file path corrected
tirthdoshi009 Dec 3, 2025
e700d23
Build docker image, file path corrected
tirthdoshi009 Dec 3, 2025
dcb80b5
Update indent and remove reserved variable
tirthdoshi009 Dec 3, 2025
327f3c4
Update indent and remove reserved variable
tirthdoshi009 Dec 3, 2025
df325b9
Update syntax error
tirthdoshi009 Dec 3, 2025
e890c04
Update syntax error
tirthdoshi009 Dec 3, 2025
b8cde9b
Add optional Application Insights integration
tirthdoshi009 Dec 3, 2025
75084ac
Add optional Application Insights integration
tirthdoshi009 Dec 3, 2025
9b3dab9
Add container app logs viewing step to deployment workflow
tirthdoshi009 Dec 3, 2025
16c348c
Add container app logs viewing step to deployment workflow
tirthdoshi009 Dec 3, 2025
7f16967
Add complete environment configuration to workflow
tirthdoshi009 Dec 3, 2025
b261a8d
Add complete environment configuration to workflow
tirthdoshi009 Dec 3, 2025
70d4f03
Trigger workflow run
tirthdoshi009 Dec 3, 2025
d3ca65d
Trigger workflow run
tirthdoshi009 Dec 3, 2025
808d12b
Trigger workflow run
tirthdoshi009 Dec 11, 2025
003451b
Trigger workflow run
tirthdoshi009 Dec 11, 2025
a55f300
Trigger workflow run
tirthdoshi009 Dec 12, 2025
a18f5a9
Trigger workflow run
tirthdoshi009 Dec 12, 2025
272e2dd
Add a comment once deployed
tirthdoshi009 Jan 5, 2026
4109e8c
Resolve merge conflicts
tirthdoshi009 Jan 5, 2026
4c73ead
Update comment in PR
tirthdoshi009 Jan 5, 2026
daef7fa
Update previous comment instead of ccreating a new one
tirthdoshi009 Jan 5, 2026
f087043
Remove local branch within PR
tirthdoshi009 Jan 5, 2026
d4ddc70
Delete python/agent-framework/sample-agent/APPLICATION_INSIGHTS.md
tirthdoshi009 Jan 5, 2026
bbcd192
Remove workflow
tirthdoshi009 Jan 5, 2026
3e9688e
Merge branch 'users/tirthdoshi/local-playground' of https://github.co…
tirthdoshi009 Jan 5, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 28 additions & 3 deletions python/agent-framework/sample-agent/host_agent_server.py
Original file line number Diff line number Diff line change
Expand Up @@ -151,27 +151,48 @@ async def help_handler(context: TurnContext, _: TurnState):
self.agent_app.conversation_update("membersAdded", auth_handlers=handler)(help_handler)
self.agent_app.message("/help", auth_handlers=handler)(help_handler)

@self.agent_app.activity("message", auth_handlers=handler)
@self.agent_app.activity("installationUpdate", auth_handlers=handler)
async def on_installation_update(context: TurnContext, _: TurnState):
"""Handle agent installation/uninstallation events"""
try:
action = getattr(context.activity, "action", None)
logger.info(f"📦 Installation event: {action} in conversation {context.activity.conversation.id}")

# Optionally send a welcome message when installed
if action == "add":
await context.send_activity(
f"👋 Thanks for installing **{self.agent_class.__name__}**! "
"I'm ready to help. Send me a message or type /help to get started."
)
except Exception as e:
logger.error(f"Error handling installation update: {e}")

@self.agent_app.activity("message")

Copilot AI Dec 1, 2025

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Critical: The auth_handlers parameter was removed from the message activity handler. This breaks authentication for the agents playground.

The on_message handler at line 170 should include auth_handlers=handler to ensure proper authentication:

@self.agent_app.activity("message", auth_handlers=handler)

Comparing with line 154 (installationUpdate) and the similar implementation in python/openai/sample-agent/host_agent_server.py:114, all activity handlers should include the auth_handlers parameter. The removal of this parameter is likely causing the playground connectivity issue mentioned in the PR description.

Suggested change
@self.agent_app.activity("message")
@self.agent_app.activity("message", auth_handlers=handler)

Copilot uses AI. Check for mistakes.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@tirthdoshi009 can you address this?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rahuldevikar761 Hey Rahul,
image
The auth handler does not really do anything in this code. I think it's being misplaced. In order for the playground to send the message to the agent, the correct way is this.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

async def on_message(context: TurnContext, _: TurnState):
try:
logger.info(f"📨 Processing message: '{context.activity.text}'")

result = await self._validate_agent_and_setup_context(context)
if result is None:
logger.warning("⚠️ Agent validation failed")
return
tenant_id, agent_id = result

with BaggageBuilder().tenant_id(tenant_id).agent_id(agent_id).build():
user_message = context.activity.text or ""

if not user_message.strip() or user_message.strip() == "/help":
logger.info("⏭️ Skipping empty or help message")
return

logger.info(f"📨 {user_message}")
response = await self.agent_instance.process_user_message(
user_message, self.agent_app.auth, self.auth_handler_name, context
)
logger.info(f"📤 Sending response: {response[:100] if len(response) > 100 else response}")
await context.send_activity(response)

except Exception as e:
logger.error(f"❌ Error: {e}")
logger.error(f"❌ Error: {e}", exc_info=True)
await context.send_activity(f"Sorry, I encountered an error: {str(e)}")

@self.agent_notification.on_agent_notification(
Expand Down Expand Up @@ -245,6 +266,10 @@ def create_auth_configuration(self) -> AgentAuthConfiguration | None:
# --- Server ---
def start_server(self, auth_configuration: AgentAuthConfiguration | None = None):
async def entry_point(req: Request) -> Response:
# Log incoming request
body = await req.text()
logger.info(f"🌐 Incoming request to /api/messages")
logger.info(f"📋 Request body preview: {body[:200]}...")
Comment thread
tirthdoshi009 marked this conversation as resolved.
Outdated
Comment thread
tirthdoshi009 marked this conversation as resolved.
Outdated
return await start_agent_process(
req, req.app["agent_app"], req.app["adapter"]
)
Expand Down