Skip to content

Commit 73f696f

Browse files
committed
feat(server,sdk): add context token as authentication method to agents
Signed-off-by: Radek Ježek <[email protected]>
1 parent 37e2eb7 commit 73f696f

File tree

60 files changed

+1251
-529
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

60 files changed

+1251
-529
lines changed

agents/chat/.vscode/launch.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
{
88
"name": "agent-chat",
99
"type": "debugpy",
10+
"justMyCode": false,
1011
"request": "launch",
1112
"program": "${workspaceFolder}/src/chat/agent.py",
1213
"console": "integratedTerminal"

agents/chat/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
FROM python:3.13-alpine3.22
1+
FROM python:3.13-slim
22
ARG RELEASE_VERSION="main"
33
COPY ./agents/chat/ /app/agents/chat
44
COPY ./apps/agentstack-sdk-py/ /app/apps/agentstack-sdk-py/

agents/chat/pyproject.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ authors = [
77
]
88
requires-python = ">=3.13,<3.14"
99
dependencies = [
10-
"beeai-framework[duckduckgo,wikipedia,a2a]>=0.1.70",
10+
"beeai-framework[duckduckgo,wikipedia,a2a]>=0.1.74",
1111
"tiktoken>=0.12.0", # constraint for beeai-framework dependency (first version with musl arm64 wheel)
1212
"fastuuid>=0.14.0", # constraint for beeai-framework dependency (first version with musl arm64 wheel)
1313
"openai>=1.107.1",

agents/chat/src/chat/agent.py

Lines changed: 19 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -2,71 +2,58 @@
22
# SPDX-License-Identifier: Apache-2.0
33
import logging
44
import os
5-
from typing import Annotated
65
from textwrap import dedent
6+
from typing import Annotated
77

88
from a2a.types import (
99
AgentSkill,
1010
Message,
1111
)
12-
from beeai_framework.agents.requirement.utils._tool import FinalAnswerTool
13-
from beeai_framework.errors import FrameworkError
14-
from pydantic import BaseModel
15-
1612
from agentstack_sdk.a2a.extensions import (
1713
AgentDetail,
1814
AgentDetailContributor,
1915
AgentDetailTool,
20-
BaseExtensionServer,
21-
BaseExtensionSpec,
2216
CitationExtensionServer,
2317
CitationExtensionSpec,
2418
ErrorExtensionParams,
2519
ErrorExtensionServer,
2620
ErrorExtensionSpec,
27-
TrajectoryExtensionServer,
28-
TrajectoryExtensionSpec,
2921
LLMServiceExtensionServer,
3022
LLMServiceExtensionSpec,
23+
TrajectoryExtensionServer,
24+
TrajectoryExtensionSpec,
3125
)
32-
33-
# Monkey-patch to remove FormExtensionSpec which no longer exists
34-
# TODO: remove after next release
35-
import agentstack_sdk.a2a.extensions as agentstack_extensions
36-
from chat.tools.files.file_reader import FileReaderTool
37-
38-
agentstack_extensions.FormExtensionSpec = BaseExtensionSpec
39-
agentstack_extensions.FormExtensionServer = BaseExtensionServer
40-
agentstack_extensions.TextField = BaseModel
41-
26+
from agentstack_sdk.a2a.extensions.services.platform import (
27+
PlatformApiExtensionServer,
28+
PlatformApiExtensionSpec,
29+
)
30+
from agentstack_sdk.a2a.types import AgentArtifact, AgentMessage
31+
from agentstack_sdk.server import Server
32+
from agentstack_sdk.server.context import RunContext
33+
from agentstack_sdk.server.middleware.platform_auth_backend import PlatformAuthBackend
34+
from agentstack_sdk.server.store.platform_context_store import PlatformContextStore
4235
from beeai_framework.adapters.agentstack.backend.chat import AgentStackChatModel
4336
from beeai_framework.agents.requirement import RequirementAgent
4437
from beeai_framework.agents.requirement.events import (
45-
RequirementAgentSuccessEvent,
4638
RequirementAgentFinalAnswerEvent,
39+
RequirementAgentSuccessEvent,
4740
)
41+
from beeai_framework.agents.requirement.utils._tool import FinalAnswerTool
42+
from beeai_framework.backend import AssistantMessage, ChatModelParameters
43+
from beeai_framework.errors import FrameworkError
4844
from beeai_framework.middleware.trajectory import GlobalTrajectoryMiddleware
49-
from beeai_framework.tools import Tool, AnyTool
45+
from beeai_framework.tools import AnyTool, Tool
5046
from beeai_framework.tools.search.duckduckgo import DuckDuckGoSearchTool
5147
from beeai_framework.tools.search.wikipedia import WikipediaTool
5248
from beeai_framework.tools.weather import OpenMeteoTool
53-
from beeai_framework.backend import ChatModelParameters, AssistantMessage
54-
from agentstack_sdk.a2a.extensions.services.platform import (
55-
PlatformApiExtensionServer,
56-
PlatformApiExtensionSpec,
57-
)
58-
from agentstack_sdk.a2a.types import AgentMessage, AgentArtifact
59-
from agentstack_sdk.server import Server
60-
from agentstack_sdk.server.context import RunContext
6149
from openinference.instrumentation.beeai import BeeAIInstrumentor
6250

6351
from chat.helpers.citations import extract_citations
6452
from chat.helpers.trajectory import TrajectoryContent
6553
from chat.tools.files.file_creator import FileCreatorTool, FileCreatorToolOutput
54+
from chat.tools.files.file_reader import FileReaderTool
6655
from chat.tools.files.utils import extract_files, to_framework_message
6756

68-
from agentstack_sdk.server.store.platform_context_store import PlatformContextStore
69-
7057
BeeAIInstrumentor().instrument()
7158

7259
logger = logging.getLogger(__name__)
@@ -300,6 +287,7 @@ def serve():
300287
port=int(os.getenv("PORT", 8000)),
301288
configure_telemetry=True,
302289
context_store=PlatformContextStore(),
290+
auth_backend=PlatformAuthBackend(),
303291
)
304292
except KeyboardInterrupt:
305293
pass

0 commit comments

Comments
 (0)