Developer Plugin
The Developer Plugin registers an agentic_developer tool that the main agent can delegate implementation tasks to. Given a detailed plan, the developer subagent autonomously reads files, edits code, and runs shell commands to carry out the implementation.
Overview
The Developer plugin:
- Registers the
agentic_developertool for the main agent viaonPromptAssemble - The tool spins up a subagent with a dedicated developer system prompt (
agentic_developer_system_prompt.jinja2) - The subagent has access to:
knowledge_search,read_file,shell,replace_in_file,write_file - The subagent's working directory is scoped to the current conversation's source context
Configuration
plugins:
- module: codumentor.plugins.developer
class: DeveloperPlugin
args:
enabled: true
target_agents: "main" # Only expose to main agent (default)
Configuration Parameters
- enabled (optional): Whether the plugin is active (default:
true) - target_agents (optional): Which agents receive the tool —
"main","subagent", or"all"(default:"main")
Tool Usage
The main agent calls agentic_developer with an implementation plan:
agentic_developer(
plan="Add input validation to the UserService.create() method.
1. Check that email is not empty and is a valid format.
2. Check that username is between 3 and 50 characters.
3. Raise ValueError with a descriptive message for each case.
4. Add unit tests in tests/test_user_service.py."
)
The developer subagent then:
- Reads the relevant files to understand the current code
- Makes the required edits using
replace_in_fileorwrite_file - Optionally runs tests or build commands via the shell tool
- Returns a summary of what was changed
How It Works
On each onPromptAssemble call, the plugin builds the subagent's tool list from the current config (honoring disabled_tools from context) and creates or updates the AgenticDeveloperTool instance. The tool definition is injected into the prompt's tool list if not already present.
The subagent runs in its own context window so that implementation details don't pollute the main conversation.
Notes
- Vector search: Included in the subagent's tools if
disable_vector_searchis not set in config - Editing tools:
replace_in_fileandwrite_fileare included unless explicitly listed indisabled_toolscontext - Shell tool: Available to the subagent for running tests, build commands, linters, etc.
- If the conversation uses a custom source context (e.g., a log collection), the subagent's file and shell tools are scoped to that context's working directory