Agno AgentOS Showcase 实战验证指南RAG、金融研究与团队编排平台的全链路测试【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno导读本指南以 Agno 仓库中cookbook/05_agent_os/24_showcase一课为对象围绕其测试日志TEST_LOG.md展开完整还原一个集安全认证Bearer、AgentOS 链路追踪、pgvector 知识库 RAG、网页 金融实时研究与团队编排于一体的演示应用是如何被验证的。读完本文你将掌握该 showcase 的运行前提、启动步骤、三个 Python 模块的测试证据以及底层 AgentOS 认证、追踪与评测持久化机制的实现细节。一、这个 Showcase 是什么24_showcase将 AgentOS 课程体系组装成一个连贯的演示进程它同时承载一个基于 pgvector 的 Agno 文档问答助手、一个结合网页与金融数据的实时研究员以及一个金融 Team并把会话sessions、追踪traces、知识knowledge与评测结果evals统一持久化到 PostgreSQL。应用始终启用基于OS_SECURITY_KEY的 Bearer 认证启用 AgentOS 追踪并在服务启动前真实运行一次AccuracyEval。模块文件与职责如下来自 README.md文件讲解内容_agents.py共享 PostgreSQL 存储、pgvector 文档知识库、Agno Assist 与 Sage 两个 Agent_teams.py将 Sage 与专注市场数据的专家组合成一个金融 Teamdemo.py一个带安全认证与追踪的 AgentOS加上知识准备与一次可存储的准确率评测测试日志确认了该模块的三个文件全部通过PASS且测试模式均为LIVE真实调用模型与工具非 mock_agents.py与_teams.py作为无__main__的支撑模块由测试装置导入驱动demo.py则是完整运行的入口脚本。二、测试环境与前置条件TEST_LOG.md 记录了两次验证2026-07-24针对 Agno 源码提交45bfff9f2aa6ec11b7386c3cd3bf6d1141d005dc进行测试服务端口为 178772026-08-24demo.py重测原因是评测持久化断言从accuracy_evaluation.eval_id迁移到了result.run_id重测端口为SHOWCASE_PORT17879。两次测试共用同一套环境演示用的 Python 虚拟环境、端口 5532 上的 PostgreSQL pgvector、OpenAI 的gpt-5.5与 Anthropic 的claude-sonnet-4-6模型。对应的环境准备步骤来自 README.md安装演示环境./scripts/demo_setup.sh启动 5532 端口的 pgvector 数据库run_pgvector.sh 会拉起agnohq/pgvector:18容器数据库ai、用户与密码均为ai并把容器的 5432 映射到宿主机 5532./cookbook/scripts/run_pgvector.sh导出OPENAI_API_KEYAgno Assist、向量嵌入、金融专家与 Team 领队使用导出ANTHROPIC_API_KEYSage 与准确率评测裁判使用导出私有OS_SECURITY_KEY受保护的 REST 请求须以 Bearer token 携带它export OS_SECURITY_KEYreplace-with-a-local-secret保持网络可用需要访问 Agno 文档页、网页搜索与 Yahoo Finance。注意文档明确提示上述密钥仅用于本地示例生产环境应使用独立私密的密钥。三、启动流程与源码级解读从仓库根目录运行.venvs/demo/bin/python -m cookbook.05_agent_os.24_showcase.demo端口默认 7777被占用时可设置SHOWCASE_PORT覆盖demo.py中showcase_port int(os.getenv(SHOWCASE_PORT, 7777))。独立可用的 Uvicorn 模块目标是cookbook.05_agent_os.24_showcase.demo:app。启动阶段依次执行三个可观察步骤demo.py 中的__main__分支准备知识prepare_knowledge()将https://docs.agno.com/agent-os/introduction.md插入 PostgreSQL 内容表与 pgvector 表skip_if_existsTrue避免 URL 派生内容 ID 已存在时产生重复行验证检索查询 pgvector 并要求至少返回一条文档匹配否则抛出RuntimeError真实评测以 Agno Assist 与被评测 Agent 的组合运行AgentOS Documentation Accuracy评测把结果落库后再在默认 7777 端口提供服务。3.1 AgentOS 实例的构造demo.py构造了一个完整的、安全的 AgentOSagent_os AgentOS( idagent-os-showcase, nameAgentOS Showcase, descriptionA secured, traced AgentOS with RAG, research, finance, and evaluation., dbshowcase_db, agents[agno_assist, sage], teams[finance_team], knowledge[agno_docs], tracingTrue, settingsAgnoAPISettings(os_security_keysecurity_key), ) app agent_os.get_app()tracingTrue开启 AgentOS 追踪测试日志在早期验证中捕获到一条含4 个 span的 tracef43d8d4a65e4c0218fc6f84ef9df77a2覆盖 Agent、模型、工具与 Team 层次AgnoAPISettings(os_security_key...)将 Bearer 密钥注入应用配置。底层 settings.py 中该字段定义为Bearer token for API authentication同时内置了对localhost:3000、agno.com、os.agno.com等域名的 CORS 白名单。3.2 服务启动的底层实现agent_os.serve(appcookbook.05_agent_os.24_showcase.demo:app, host127.0.0.1, portshowcase_port)最终委托给 Uvicornapp.py。serve()还支持通过环境变量AGENT_OS_HOST与AGENT_OS_PORT覆盖主机与端口并根据AGNO_API_RUNTIMEstg切换公告的公共端点当settings.os_security_key存在时启动面板会显示:lock: Security Key Enabled。3.3 认证机制的源码印证AgentOS 的 Bearer 认证在 auth.py 中实现get_auth_token_from_request()从请求的Authorization头中提取Bearer前缀后的 tokenauth.py路由层在bool(settings.os_security_key)为真时要求认证将请求 token 与os_security_key比对router.py支持 JWT 与 legacyos_security_key两种模式并存JWT 授权开启时跳过安全密钥校验settings.py。这就是匿名请求被401拒绝、携带正确密钥后返回200的底层原因。四、模块级测试证据_agents.py测试模式LIVE支撑模块无__main__对象被测试装置导入驱动。测试动作将当前 AgentOS 简介加载进Agno Documentation知识库 → 搜索 pgvector → 以各自配置的模型与工具运行 Agno Assist 与 Sage。测试结果TEST_LOG.md 记录知识搜索返回2 个文档片段Agno Assist 运行9ba0f654-3d9e-439a-8401-4d6534b46edf调用了search_knowledge_base正确识别出 Agents、Teams 与 Workflows 三类组件并引用https://docs.agno.com/agent-os/introduction.md作为出处Sage 运行db9591cc-3f19-4531-89c8-48c1114c6e06调用了get_current_stock_price与search_news返回了带日期的 NVIDIA 市场数据并附新闻来源链接。4.1 共享存储与知识库构造_agents.py 中showcase_db是一个PostgresDb通过独立表隔离各类数据showcase_db PostgresDb( idagent-os-showcase-db, db_urlpostgresqlpsycopg://ai:ailocalhost:5532/ai, session_tableagent_os_showcase_sessions, knowledge_tableagent_os_showcase_knowledge, eval_tableagent_os_showcase_evals, traces_tableagent_os_showcase_traces, spans_tableagent_os_showcase_spans, )知识库agno_docs把内容存进 PostgreSQL 内容表、向量存进 pgvector 表agno_docs Knowledge( nameAgno Documentation, contents_dbshowcase_db, vector_dbPgVector( db_urlDB_URL, table_nameagent_os_showcase_documents, embedderOpenAIEmbedder(idtext-embedding-3-small), ), max_results5, )4.2 两个 Agent 的设计Agno AssistRAG 路径模型为OpenAIResponses(idgpt-5.5)挂在agno_docs知识库上指令要求“先搜索 Agno 文档再作答”“基于检索到的文档陈述框架结论”“当文档无法回答时明确说明”并开启add_history_to_contextTrue携带最近 3 轮历史与markdownTrue。测试日志中它调用search_knowledge_base的行为正是 RAG 链路的证据。Sage实时研究模型为Claude(idclaude-sonnet-4-6)装配两组工具WebSearchTools网页搜索 新闻、固定最多 5 条结果、20 秒超时与YFinanceTools股价、公司信息、基本面、分析师推荐、公司新闻。指令要求“用 YFinanceTools 取价格与基本面”“用 WebSearchTools 取时效性信息”“引用网页来源并为市场数据标注检索日期”“区分事实与解读”并开启add_datetime_to_contextTrue以便在回答中标注时间。五、模块级测试证据_teams.py测试模式LIVE。测试动作以broadcast广播模式运行 Finance Team任务是需要同时依赖两名注册成员与实时金融数据的 NVDA 与 AMD 对比。测试结果Team 运行a4f62211-5d17-43ee-911f-817eb60be176完成收集到来自 Sage 与 Market Analyst 的成员响应两名成员都取到了两个股票的当前价格gpt-5.5的 Team 领队把两份结果调和成一张带来源的对比表并标注了时间timing方面的注意事项。5.1 团队构造源码_teams.py 先定义市场专家market_analystgpt-5.5YFinanceTools 扩展至财报与关键财务比率再组合 Teamfinance_team Team( idfinance-team, nameFinance Team, modelOpenAIResponses(idgpt-5.5), dbshowcase_db, members[sage, market_analyst], instructions[ Delegate current news and broad context to Sage., Delegate exact market and fundamentals work to the Market Analyst., Reconcile the two member responses into one concise, sourced brief., Distinguish facts, interpretation, and material uncertainty., Do not present the response as investment advice., ], delegate_to_all_membersTrue, # 广播模式同时委派给所有成员 show_members_responsesTrue, # 领队可见成员响应并做调和 markdownTrue, )delegate_to_all_membersTrue正是测试中“broadcast 模式”的配置来源每个成员各自取数领队再对响应进行调和与汇总。六、模块级测试证据demo.py含评测持久化迁移测试模式LIVE。测试动作2026-08-24 重测端口 17879准备知识 → 运行真实准确率评测 → 验证认证与评测端点。测试结果AccuracyEval da6e8c87-0250-40d3-aec3-2c8398810a51由claude-sonnet-4-6裁判打出10/10持久化断言通过result.run_id读回评测行这是从eval_id迁移后的新验证方式匿名GET /config返回401携带密钥后返回200评测列表端点返回3 条已存储的运行各自拥有独立 ID服务器干净退出无残留监听进程。2026-07-24 首轮验证端口 17877覆盖面更广AccuracyEval 0a7df9c3-aecc-4ee5-bc2e-fa7165bb234a同为 10/10持久化通过 eval 号47325c0e-73c5-4477-87e7-38dc4f5323ce验证资源发现接口恰好返回agno-assist、sage、finance-team三个组件知识搜索后的 Agent 运行为46f18a31-9a8e-4db5-810b-c63e14275ec0追踪f43d8d4a65e4c0218fc6f84ef9df77a2含 4 个 span。6.1 评测构造与持久化源码demo.py中的评测定义accuracy_evaluation AccuracyEval( dbshowcase_db, nameAgentOS Documentation Accuracy, modelClaude(idclaude-sonnet-4-6), agentagno_assist, inputWhich three component types can AgentOS serve?, expected_outputAgentOS can serve Agents, Teams, and Workflows., additional_guidelines[ Accept capitalization and singular or plural variations., The answer must identify all three component types., ], num_iterations1, show_spinnerFalse, )底层 accuracy.py 中AccuracyEval.run()会为每次执行生成唯一的run_idAccuracyResult携带该字段并以eval_{run_id}_{i}的形式命名评测会话demo.py在运行后通过showcase_db.get_eval_run(result.run_id)校验评测行已落库——这正是测试日志提到的“持久化检查从eval_id迁移到run_id”的落点对应 db/base.py 的get_eval_run接口。七、认证与资源发现如何验证应用根页面、GET /health与GET /info保持公开便于发现与健康检查其余接口均需密钥。匿名请求被拒绝curl -i http://127.0.0.1:7777/config携带密钥发现两个 Agent 与一个 Teamcurl \ -H Authorization: Bearer ${OS_SECURITY_KEY} \ http://127.0.0.1:7777/configruns、sessions、knowledge、traces 与 evaluation 端点同样需要该请求头。测试日志证实认证后资源发现接口精确返回agno-assist、sage、finance-team三项。7.1 推荐试用的 Prompt组件PromptAgno AssistWhich three component types can AgentOS serve? Link the relevant documentation.SageGive me current context and market data for NVDA, separating facts from interpretation.Finance TeamCompare MSFT and GOOGL fundamentals and recent news in a concise table.路径分工Agno Assist 走 RAG先检索已索引文档再作答Sage 用WebSearchTools取时效信息、YFinanceTools取市场数据Finance Team 委派给 Sage 与市场专家后调和两者响应。7.2 通过 REST 与控制面检查结果将http://127.0.0.1:7777连接至 AgentOS 控制面并携带安全密钥后可检查Agents and Teamsagno-assist、sage、finance-team、KnowledgeAgno Documentation实例与已索引的 introduction、Sessions三条 Prompt 执行后、TracesAgent/模型/工具/Team span、Evals已存储的AgentOS Documentation Accuracy结果。等价的带认证 REST 表面为GET /config资源发现GET /knowledge/content知识内容GET /sessions会话GET /traces追踪GET /eval-runs评测运行测试日志中“匿名 401 / 认证 200 / 评测列表返回三条存储运行”正是这些端点的直接验证。八、验证清单与关闭流程TEST_LOG.md 的 Validation 部分记录了静态与运行态双重校验模式校验递归模式校验恰好检查 3 个 Python 文件0 违规工程检查Ruff format 与 check、Python 编译、清单inventory对等、本地 Markdown 链接、legacy 文件删除与git diff --check全部通过运行态收尾PostgreSQL 与 pgvector 在共享测试环境中保持运行测试结束后无 showcase 服务进程或监听器残留。关闭演示在服务终端按Ctrl-C停止服务器PostgreSQL 数据保留供下次运行复用仅当容器仅为本课而启动时才停止共享的 pgvector 容器。九、关键结论可复现的端到端演示一个demo.py串联了知识灌入、pgvector 检索自检、真实AccuracyEval落库与安全服务的全流程测试日志三次关键验证两个支撑模块 完整入口均通过。认证与追踪是标配AgnoAPISettings(os_security_key...)驱动 Bearer 认证tracingTrue驱动链路追踪匿名 401 / 认证 200 / 4-span trace 是两者的直接观测结果。评测持久化以run_id为准AccuracyEval.run()每次生成唯一run_id落库校验通过get_eval_run(result.run_id)完成10/10 的裁判成绩与三条历史 eval 记录均可从GET /eval-runs复现。广播式 Team 是金融对比任务的正确编排delegate_to_all_membersTrue让 Sage 与 Market Analyst 并行取数领队统一调和测试以 NVDA/AMD 实时对比验证了该模式的有效性。如需深入源码可继续阅读 demo.py、_agents.py、_teams.py 三个示例文件以及认证实现 auth.py、服务启动 app.py 与评测实现 accuracy.py。【免费下载链接】agnoBuild, run, and manage agent platforms.项目地址: https://gitcode.com/GitHub_Trending/ag/agno创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
