Files
osmedeus/test/testdata/workflows/agent-and-llm/test-agent-custom-tools.yaml
T
j3ssie 438d8ec138 feat: implement agent executor with tool calling, sub-agents, and comprehensive test suite
- Add AgentExecutor implementing LLM-based agentic loop with tool calling, max iterations, and stop conditions
- Introduce agent preset tools (bash, file_exists, http_get, run_module, etc.) with extensible registry pattern
- Add sub-agent spawning capability via spawn_agent tool call with recursive depth limits and validation
- Implement ToolExecutor for custom tool execution with template rendering and error handling
- Add agent session persistence and memory management with sliding window configuration
- Create comprehensive E2E test suite covering 15+ agent workflow scenarios (minimal, custom tools, planning, multi-goal, structured output, tracing hooks, file tools, orchestration, Python tools, sub-agents, nested sub-agents, and validation)
- Add agent-and-llm test data directory with 17 YAML workflow fixtures
- Update integration tests to include agent workflow directories
- Add AgentTool and AgentConfig types with validation for duplicate names and unknown presets
- Implement LLM streaming test utilities
- Update documentation (CLAUDE.md, HACKING.md, README.md) with agent features and CLI examples
2026-02-10 08:44:48 +07:00

34 lines
938 B
YAML

kind: module
name: test-agent-custom-tools
description: Test agent step with custom tool handlers and template rendering
tags: test,agent
params:
- name: target
required: true
default: example.com
steps:
- name: agent-custom-handler
type: agent
query: "Use the classify tool to classify the target '{{Target}}' and report the result."
max_iterations: 3
agent_tools:
- name: classify
description: "Classify a string as domain, ip, or unknown"
parameters:
type: object
properties:
input:
type: string
description: "The string to classify"
required:
- input
handler: 'contains(args.input, ".") ? "domain" : "unknown"'
exports:
classification: "{{agent_content}}"
- name: verify-custom-tool
type: bash
command: echo "Classification result for {{Target}} is - {{classification}}"