Conversation
There was a problem hiding this comment.
Pull request overview
This PR upgrades the project to version 0.1.3, introducing comprehensive OpenTelemetry observability support, a new Prompt Contributor mechanism, and enhanced tool call tracing capabilities. The changes also include bug fixes, dependency updates, and removal of deprecated features.
Changes:
- Added full OpenTelemetry native API integration with observation contexts, helpers, and lifecycle listeners for distributed tracing
- Introduced tool call tracing with ToolCallRecord model and enhanced GraalCodeExecutor to track tool invocations during code execution
- Refactored Prompt system by replacing PromptBuilder/PromptManager with flexible PromptContributor mechanism
- Updated dependencies including spring-ai-alibaba (1.1.0.0 → 1.1.2.0) and added OpenTelemetry BOM (1.35.0)
- Removed deprecated features including CodeactToolFilter, WhitelistMode, and state propagation mechanisms
- Fixed bugs in FastIntentReactHook, context bindings, and improved Python code generation string escaping
Reviewed changes
Copilot reviewed 59 out of 59 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| pom.xml | Version bump to 0.1.3, spring-ai-alibaba upgrade to 1.1.2.0, OpenTelemetry BOM added |
| assistant-agent-core/* | New observation contexts, helpers, ToolCallRecord model, enhanced GraalCodeExecutor with tracing |
| assistant-agent-evaluation/* | EvaluationObservationLifecycleListener, parent Span support, rawPrompt tracking |
| assistant-agent-extensions/* | AfterAgentLearningHook observation data, AsyncLearningHandler custom executor support, bug fixes |
| assistant-agent-autoconfigure/* | Removed CodeactToolFilter/WhitelistMode, state propagation, subAgentSystemPrompt |
| assistant-agent-common/* | Enhanced ParameterTree with Python string escaping, CodeactTool null-safety improvements |
| README.md | Restructured documentation with links to java2ai.com documentation site |
| CHANGELOG.md | Comprehensive 0.1.3 release notes with added/changed/removed sections |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| import com.alibaba.assistant.agent.common.hook.AgentPhase; | ||
| import com.alibaba.assistant.agent.common.hook.HookPhases; |
There was a problem hiding this comment.
Duplicate imports detected. Lines 21-22 repeat the imports from lines 19-20 (AgentPhase and HookPhases). Remove the duplicate import statements.
| /** | ||
| * 存储每个节点的 parent Scope(用于正确的父子关系) | ||
| */ | ||
| private final ConcurrentHashMap<String, Scope> parentScopes = new ConcurrentHashMap<>(); |
There was a problem hiding this comment.
The contents of this container are never accessed.
| // Add additional lifecycleListeners to existing config | ||
| if (!lifecycleListeners.isEmpty()) { | ||
| for (com.alibaba.cloud.ai.graph.GraphLifecycleListener listener : lifecycleListeners) { | ||
| compileConfig.lifecycleListeners().offer(listener); |
There was a problem hiding this comment.
Method buildConfig ignores exceptional return value of Queue.offer.
| compileConfig.lifecycleListeners().offer(listener); | |
| boolean added = compileConfig.lifecycleListeners().offer(listener); | |
| if (!added) { | |
| logger.warn("CodeactAgentBuilder#buildConfig - reason=无法将LifecycleListener添加到已有CompileConfig, listener={}", | |
| listener != null ? listener.getClass().getName() : "null"); | |
| } |
[0.1.3] - 2026-02-04
Added
Observation & Traceability
BaseAgentObservationLifecycleListener: Base lifecycle listener for Agent observabilityCodeactObservationDocumentation: Standardized observation metrics definition (Hook, Interceptor, React, Execution, CodeGen, ToolCall)EvaluationObservationLifecycleListener: Observability listener for Evaluation GraphToolCallRecord: Tool call record model with call order and tool nameExecutionRecord.callTrace: Tool call trace list during code executionToolRegistryBridge: Tool registry bridgeHookObservationHelper: Hook execution observation helperInterceptorObservationHelper: Interceptor execution observation helperOpenTelemetryObservationHelper: General OpenTelemetry observation helperHookObservationContext: Hook observation contextInterceptorObservationContext: Interceptor observation contextReactPhaseObservationContext: React phase observation contextCodeGenerationObservationContext: Code generation observation contextCodeactExecutionObservationContext: Code execution observation contextCodeactToolCallObservationContext: Tool call observation contextPrompt Contributor Module
PromptContributor: Prompt contributor interfacePromptContributorManager: Prompt contributor manager interfaceDefaultPromptContributorManager: Default implementation with priority sorting and dynamic registrationPromptContributorContext: Context interfaceOverAllStatePromptContributorContext: OverAllState-based context implementationEvaluationBasedPromptContributor: Abstract base class for generating Prompts based on evaluation resultsPromptContributorModelHook: Abstract base class for integrating PromptContributor into ModelHookReactPromptContributorModelHook: Prompt contribution Hook for React phaseCodeactPromptContributorModelHook: Prompt contribution Hook for Codeact phasePromptContributorAutoConfigurationprovides out-of-the-box configurationOther Enhancements
ParameterTree: Enhanced parameter tree definition capabilitiesCommonSenseInjectionTool: Common sense injection toolToolContextHelper: Tool context helper classCodeactStateKeys: Codeact state key constantsChanged
Removed
PromptBuilder: Replaced by PromptContributorPromptManager: Replaced by PromptContributorManagerPromptInjectionInterceptor: Replaced by PromptContributorModelHookCodeactToolFilter: Tool filterWhitelistMode: Whitelist mode enum