-
Notifications
You must be signed in to change notification settings - Fork 2
feat: Add class diagram for core AgentStack agents and tools #8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -379,3 +379,147 @@ npm run mcp-server | |||||||||||||||||||||||||||||
| 📘 **[Docs](https://agentstack.ai)** (Coming Q1 2026) | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| _Last updated: 2025-12-05 | v3.3.0_ | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| ## 📚 **Class Diagram** | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| - Latest class diagram for core AgentStack agents and tools: | ||||||||||||||||||||||||||||||
|
|
||||||||||||||||||||||||||||||
| ```mermaid | ||||||||||||||||||||||||||||||
| classDiagram | ||||||||||||||||||||||||||||||
| class Agent { | ||||||||||||||||||||||||||||||
| +string id | ||||||||||||||||||||||||||||||
| +string name | ||||||||||||||||||||||||||||||
| +string description | ||||||||||||||||||||||||||||||
| +function instructions(runtimeContext) | ||||||||||||||||||||||||||||||
| +model | ||||||||||||||||||||||||||||||
| +memory | ||||||||||||||||||||||||||||||
| +tools | ||||||||||||||||||||||||||||||
| +agents | ||||||||||||||||||||||||||||||
| +workflows | ||||||||||||||||||||||||||||||
| +scorers | ||||||||||||||||||||||||||||||
| +maxRetries | ||||||||||||||||||||||||||||||
|
Comment on lines
+394
to
+400
|
||||||||||||||||||||||||||||||
| +model | |
| +memory | |
| +tools | |
| +agents | |
| +workflows | |
| +scorers | |
| +maxRetries | |
| +model: Model | |
| +memory: Memory | |
| +tools: Record<string, Tool> | |
| +agents: Record<string, Agent> | |
| +workflows: Record<string, Workflow> | |
| +scorers: Record<string, Scorer> | |
| +maxRetries: number |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Tool properties lack type information in the class diagram. For clarity and consistency, consider adding types:
+inputSchema: ZodSchema+outputSchema: ZodSchema
| +inputSchema | |
| +outputSchema | |
| +inputSchema: ZodSchema | |
| +outputSchema: ZodSchema |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The execute method should use proper type annotations in the class diagram. Consider +execute(context: InputContext): Promise<Output> instead of +function execute(context) for better clarity and consistency with TypeScript conventions.
| +function execute(context) | |
| +execute(context: InputContext): Promise<Output> |
Copilot
AI
Dec 5, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The properties userTier, language, and projectRoot are not direct properties of codeArchitectAgent. These values are accessed from the RuntimeContext within the agent's instructions function, not stored as agent properties. Consider removing these lines or clarifying that they are runtime context values, not agent properties.
| +UserTier userTier | |
| +string language | |
| +string projectRoot | |
| // Note: userTier, language, and projectRoot are accessed from RuntimeContext in instructions, not stored as agent properties. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This class diagram is a great addition for understanding the agent architecture.
There's a small inconsistency in how agent properties derived from runtimeContext are displayed. The codeArchitectAgent class includes userTier, language, and projectRoot, but other agents like codeReviewerAgent, testEngineerAgent, and refactoringAgent—which also use these context properties—do not have them listed in the diagram.
For better consistency and to make the diagram more informative about what context each agent uses, I suggest adding these properties to the other agent classes as well. This will make it clearer at a glance what contextual information each agent depends on.
class codeArchitectAgent {
+id = "code-architect"
+name = "Code Architect Agent"
+description
+UserTier userTier
+string language
+string projectRoot
}
class codeReviewerAgent {
+id = "code-reviewer"
+name = "Code Reviewer Agent"
+description
+UserTier userTier
+string language
}
class testEngineerAgent {
+id = "test-engineer"
+name = "Test Engineer Agent"
+description
+UserTier userTier
+string language
}
class refactoringAgent {
+id = "refactoring"
+name = "Refactoring Agent"
+description
+UserTier userTier
+string language
+string projectRoot
}
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The
instructionsmethod should use proper type annotations in the class diagram. Consider+instructions(runtimeContext: RuntimeContext): objectinstead of+function instructions(runtimeContext)for better clarity and consistency with TypeScript conventions.