Repository navigation
Conversation
Move CrewAI, Google ADK, LangGraph, OpenAI Agents and Claude Agent SDK onto shared manifest helpers so every integration emits only AgentManifest keys, with instructions, tools and model populated where the framework declares them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Codeowners resolved asResolved from the full PR diff against |
Dependency direction analysis📈 Existing violations got worse3 pre-existing violation(s) increased in severity (e.g. their target became more depended-on, or got pulled into an import cycle), though the edge itself isn't new:
|
Circular import analysis
|
❌ ErrorsYour PR has failed checks. Please review the issues below and take necessary action before merging. 🚦 7 Pipeline jobs failed
ℹ️ InfoNo other issues found (see more)🧪 All tests passed Useful? React with 👍 / 👎 This comment will be updated automatically if new data arrives.🔗 Commit SHA: 4c29585 | Docs | View more details | Give us feedback! |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep optional tool parameters, read ClaudeSDKClient options, stop reporting default MCP server names and web search user location, exclude LangGraph injected tool args, report every ADK callable tool, prefer CrewAI's declared goal and backstory, count manifest section failures in telemetry, and correct the release note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
@codex review |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Codex Review: Didn't find any major issues. Can't wait for the next one! Reviewed commit: ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. Codex can also answer questions or update the PR. Try commenting "@codex address that feedback". |
🛡️ Codex Security Review · Automatically triggeredSecurity review completed. No security issues were found in this pull request. Reviewed commit: Only the user who started this review can view the report in Codex. ℹ️ About Codex security reviews in GitHubThis is an experimental Codex feature. Security reviews are triggered when:
Once complete, Codex will leave suggestions, or a comment if no findings are found. |
Description
Standardizes the
agent_manifestemitted on agent spans across CrewAI, Google ADK, LangGraph, OpenAI Agents and Claude Agent SDK, so every integration reports the same keys (AgentManifest) in the same shapes, and instructions, tools and model are populated wherever the framework declares them.Shared helpers in
_integrations/agent_manifest.py(build_agent_manifest,instruction_fields,normalize_tool,filter_model_settings,config_value,as_str) generalize what pydantic_ai and the manual path already did: section-isolated building, an allowlist for model settings, a JSON-native result, and callables recorded by name rather than called orstr()-ed. pydantic_ai moves onto them; its output only changes in key order. A failing section now emits anagent_manifest.section_errortelemetry count tagged with integration and section.Tool parameters are normalized to
{param: {type, required?}}with JSON Schema type names. Optional parameters (anyOf, list-valuedtype,$ref) keep a type instead of being dropped.Per integration:
model_settingsis allowlisted (it previously shippedextra_headers,extra_body,extra_query,extra_args). Hosted tools ship only declared config (no MCP headers, authorization or URL, no client objects, no web search user location). MCP servers left at their default name (which embeds the URL) report the class name. Callable instructions and stored prompts go toextra_instructions. Addscapabilities,data_contractsandagent_settings.descriptionmaps tohandoff_description. Addssystem_prompts,model_settings(fromgenerate_content_config), tool parameters for every callable tool (bound methods and partials included),data_contracts,handoffs(sub_agents), guardrails (before-model/tool callbacks) andagent_settings. Removesmodel_configuration(pydantic's own config) andsession_management(per-run values).instructionsis goal plus backstory, preferring the pre-interpolation text when CrewAI kept it. Tool parameters come fromargs_schema.max_iterand code-execution settings move toagent_settings. CrewAI's injected stop words are not reported.create_react_agent(model="gpt-4o")no longer raises. Tool parameters come fromtool_call_schema, so injected args are excluded. The cached manifest is no longer mutated by a run's config;recursion_limitmoves toagent_settings, preferring the one declared withwith_config().dependencies(run input keys) is removed.instructions(system_prompt, including presets),capabilities(MCP servers, without per-run status),handoffs(agents),guardrailsandagent_settings, for bothquery()andClaudeSDKClientsessions. Removesdependencies/max_iterations.Every key web-ui reads (
model_provider,handoff_description, CrewAI's{allow_delegation}handoffs) is kept.model_configurationwas only a fallback for a missingmodel_settings, which ADK now reports.Supersedes #19533.
Testing
tests/llmobs/test_agent_manifest_integrations.pychecks that every integration emits only schema keys, round-trips through JSON, and is identical across rebuilds, and that no declared callable is invoked. It covers optional parameters, ADK callable tools and string models, LangGraph injected args, model strings without a colon and cache isolation, OpenAI secret-bearing settings, tools and MCP names, and Claude MCP fallback.ClaudeSDKClient(options=...)test covers options-derived fields on client sessions.Risks
Manifest keys change shape for existing integrations (listed above and in the
upgraderelease note). Comparing agent versions recorded before and after upgrading, or across services on different tracer versions, shows differences caused by the tracer. Reverting this PR would also revert the OpenAI credential allowlist.Additional Notes
The
agent_manifest.section_errortelemetry metric may need registering on the telemetry intake before it is visible.🤖 Generated with Claude Code