开源贡献-Agno
围绕 Agno 的 MCP 结果、知识过滤、日历时区、Google Drive 文件名、根目录 containment 和 Antigravity 来源边界,提交 7 个 PR,覆盖 6 项独立 Agent 工程修复。
Agno 用于构建、运行和管理 Agent 平台。本项目集中记录工具调用可见性、知识库过滤语义、外部 API 时间处理、文件系统路径安全和 symlink 隔离等高频 Agent 基础设施问题,强调小范围修复、回归测试和合并后的维护反馈。
- - MCP structuredContent-only 结果可见且保留 metadata
- - 无 contents DB 时保留知识过滤条件
- - 修复日历时区偏移与文件名路径穿越
- - 限制搜索和 Antigravity 来源在配置根目录内
开发记录
- fix: surface MCP structuredContent-only results:MCP 工具成功返回 structuredContent 但 content 数组为空时,标准 ToolResult 到 model message 的链路没有可见文本,结构化结果虽存在却无法被后续 Agent 消费。
- fix: preserve knowledge filters without contents db:Knowledge 在未配置 contents_db 时仍按 contents DB 的字段白名单校验过滤条件,导致向量数据库支持的用户过滤器被丢弃,知识检索结果范围扩大。
- fix: surface MCP structuredContent-only results:首版 MCP structuredContent 修复需要进一步保证 JSON 序列化、文本 content 优先级和错误结果 metadata 的一致性,避免结构化对象在模型消息边界丢失。
- fix: normalize calendar list event start dates:Google Calendar 的 timezone-aware start/end datetime 被格式化成无偏移的 wall-clock 字符串,导致 list_events 查询和 create/update 写入时刻发生偏移。
- fix: constrain Google Drive download filenames:Google Drive metadata.name 直接参与 download_dir 拼接,恶意路径分隔符可能让下载文件逃出配置目录,形成路径穿越风险。
- fix: keep root searches contained:FileTools、Workspace 和 CodingTools 的搜索路径及 symlink 目标可能解析到配置 root 之外,glob traversal 或内容搜索因此能读取不应暴露的文件。
- fix: skip symlinked Antigravity agent sources:AntigravityTools 和 AntigravityAgent 构建 workspace/skills inline source 时直接读取 symlink 文件,可能把 agent_directory 外部内容带入 Agent 上下文。