- AgentCatalog/definitions with strict Markdown frontmatter, delegation graph, fail-closed tool scoping, and signal contracts - structured cancellation (AgentError::Cancelled/TimedOut) across provider streams, tool batches, and sleep; /stop drives the same terminal state - schema v6 run/group/inbox persistence with execution-ID conditional transitions and completion-slot reservations - ExecutionGate separating run quota from provider/tool step permits - background completion inbox with hidden-trigger continuation turns, fairness scheduling, lease release, dead-lettering, and activation recovery - typed TurnMailbox with two-phase steer admission and atomic consumption at turn commit; /stop releases admitted steer events back to pending - emit_signal tool with contract-enforced rate/dedupe/severity/size limits - WS run/event projection (GetAgentRuns, AgentRunUpdated, AgentEventUpdated), /api/agent-runs* management endpoints, /api/tasks union, WebUI run tree and signal cards - ChannelContext.durable_private persisted for continuation delivery reuse Version 1.7.0
132 lines
3.9 KiB
JSON
132 lines
3.9 KiB
JSON
{
|
|
"providers": {
|
|
"aliyun": {
|
|
"type": "openai",
|
|
"base_url": "https://api.openai.com/v1",
|
|
"api_key": "<DASHSCOPE_API_KEY>",
|
|
"extra_headers": {}
|
|
},
|
|
"openai": {
|
|
"type": "openai",
|
|
"base_url": "https://api.openai.com/v1",
|
|
"api_key": "<OPENAI_API_KEY>",
|
|
"extra_headers": {}
|
|
},
|
|
"anthropic": {
|
|
"type": "anthropic",
|
|
"base_url": "https://api.anthropic.com/v1",
|
|
"api_key": "<ANTHROPIC_API_KEY>",
|
|
"extra_headers": {}
|
|
}
|
|
},
|
|
"models": {
|
|
"qwen-plus": {
|
|
"model_id": "qwen-plus",
|
|
"temperature": 0.0,
|
|
"max_tokens": 8192
|
|
},
|
|
"gpt-4o": {
|
|
"model_id": "gpt-4o",
|
|
"temperature": 0.7,
|
|
"max_tokens": 4096,
|
|
"input_type": ["text", "image"]
|
|
},
|
|
"claude-sonnet-4-20250514": {
|
|
"model_id": "claude-sonnet-4-20250514",
|
|
"temperature": 0.7,
|
|
"max_tokens": 8192,
|
|
"input_type": ["text", "image"]
|
|
}
|
|
},
|
|
"agents": {
|
|
"default": {
|
|
"provider": "aliyun",
|
|
"model": "qwen-plus",
|
|
"max_tool_iterations": 99,
|
|
"token_limit": 128000
|
|
}
|
|
},
|
|
"agent_orchestration": {
|
|
"enabled": false,
|
|
"definitions_dir": "agents",
|
|
"root_delegates": [],
|
|
"max_tree_depth": 4,
|
|
"max_runs_per_tree": 16,
|
|
"max_concurrent_runs": 6,
|
|
"max_concurrent_runs_per_session": 4,
|
|
"max_concurrent_provider_steps": 8,
|
|
"max_concurrent_provider_steps_per_session": 4,
|
|
"max_concurrent_tool_steps": 16,
|
|
"max_concurrent_tool_steps_per_session": 8,
|
|
"max_pending_inbox_events_per_session": 128,
|
|
"inbox_event_ttl_hours": 168,
|
|
"max_inbox_delivery_attempts": 8,
|
|
"max_user_turn_burst_before_inbox": 4,
|
|
"max_inbox_wait_secs": 30
|
|
},
|
|
"gateway": {
|
|
"host": "127.0.0.1",
|
|
"port": 19876,
|
|
"require_pairing": true,
|
|
"file_transfer": {
|
|
"enabled": true,
|
|
"upload_dir": "~/.picobot/media/cli_chat",
|
|
"max_file_bytes": 26214400,
|
|
"max_files_per_message": 8,
|
|
"max_message_bytes": 67108864,
|
|
"pending_ttl_seconds": 3600
|
|
}
|
|
},
|
|
"client": {
|
|
"gateway_url": "ws://127.0.0.1:19876/ws"
|
|
},
|
|
"channels": {
|
|
"feishu": {
|
|
"enabled": true,
|
|
"app_id": "<FEISHU_APP_ID>",
|
|
"app_secret": "<FEISHU_APP_SECRET>",
|
|
"allow_from": ["*"],
|
|
"require_mention": true,
|
|
"agent": "default",
|
|
"media_dir": "~/.picobot/media/feishu",
|
|
"reaction_emoji": "Typing",
|
|
"live_updates": false,
|
|
"live_update_interval_ms": 500,
|
|
"max_image_bytes": 10485760,
|
|
"max_file_bytes": 26214400,
|
|
"media_dir_max_bytes": 536870912,
|
|
"request_timeout_secs": 30
|
|
}
|
|
},
|
|
"memory": {
|
|
"consolidation_provider": null,
|
|
"consolidation_model": null,
|
|
"recall_limit": 5,
|
|
"idle_consolidation_minutes": 10,
|
|
"timeline_retention_days": 90,
|
|
"max_failures_before_degrade": 3
|
|
},
|
|
"mcp": {
|
|
"servers": [],
|
|
"tool_timeout_secs": 180
|
|
},
|
|
"browser": {
|
|
"enabled": true,
|
|
"command": "agent-browser",
|
|
"headless": true,
|
|
"browser_executable_path": null,
|
|
"max_sessions": 4,
|
|
"idle_timeout_secs": 900,
|
|
"command_timeout_secs": 120,
|
|
"max_output_chars": 50000,
|
|
"content_boundaries": true,
|
|
"allowed_domains": [],
|
|
"allow_private_hosts": false,
|
|
"artifact_dir": "~/.picobot/media/browser",
|
|
"persistence": {
|
|
"profile_dir": "~/.picobot/browser/profiles"
|
|
}
|
|
},
|
|
"workspace_dir": "~/.picobot/workspace"
|
|
}
|