yao/cmd/agent/agent.go
Max 44af6ba759 Enhance command structure with MCP and Robot functionalities
- Introduce new MCP and Robot command groups in the CLI, allowing for better organization of package management commands.
- Add corresponding command descriptions for MCP and Robot functionalities to improve user guidance.
- Update the agent command group to include additional commands for enhanced agent management.
- Modify .gitignore to exclude specific design markdown files from version control.
- Add environment variable for test application path in GitHub workflows to streamline testing setup.
2026-03-03 08:11:43 +08:00

87 lines
4.5 KiB
Go

package agent
import (
"os"
"path/filepath"
"github.com/yaoapp/kun/exception"
"github.com/yaoapp/yao/config"
)
var appPath string
var envFile string
var langs = map[string]string{
"Test an agent with input cases": "使用测试用例测试智能体",
"Test an agent with input cases from JSONL file or direct message": "使用 JSONL 文件或直接消息测试智能体",
"Application directory": "应用目录",
"Environment file": "环境变量文件",
"Input: JSONL file path or message (required)": "输入: JSONL 文件路径或消息 (必需)",
"Path to output file (default: output-{timestamp}.jsonl)": "输出文件路径 (默认: output-{timestamp}.jsonl)",
"Explicit agent ID (default: auto-detect)": "指定智能体 ID (默认: 自动检测)",
"Override connector": "覆盖连接器",
"Test user ID (default: test-user)": "测试用户 ID (默认: test-user)",
"Test team ID (default: test-team)": "测试团队 ID (默认: test-team)",
"Path to context JSON file for custom authorization": "自定义认证信息的 JSON 文件路径",
"Reporter agent ID for custom report": "自定义报告生成器智能体 ID",
"Number of runs for stability analysis": "稳定性分析的运行次数",
"Regex pattern to filter which tests to run": "用于过滤测试的正则表达式",
"Default timeout per test case": "每个测试用例的默认超时时间",
"Number of parallel test cases": "并行测试用例数",
"Verbose output": "详细输出",
"Stop on first failure": "遇到第一个失败时停止",
"Error: input is required (-i flag)": "错误: 需要输入 (-i 参数)",
"Error: failed to get current directory": "错误: 获取当前目录失败",
"Error: agent (-n) is required when using direct message input and not in an agent directory": "错误: 使用直接消息输入且不在智能体目录时需要指定 -n 参数",
"Hint: Make sure you're in a Yao application directory or specify --app flag": "提示: 确保在 Yao 应用目录中或使用 --app 参数指定",
"Error: invalid timeout format": "错误: 无效的超时格式",
// Registry commands
"Install an assistant package from the registry": "从注册中心安装助手包",
"Update an installed assistant package": "更新已安装的助手包",
"Push an assistant package to the registry": "推送助手包到注册中心",
"Fork an assistant to a local scope": "Fork 一个助手到本地范围",
"Package version or dist-tag": "包版本或 dist-tag",
"Force reinstall": "强制重新安装",
"Package version (required)": "包版本 (必填)",
"Target version or dist-tag": "目标版本或 dist-tag",
// Extract command
"Extract test results to individual files for review": "提取测试结果到单独的文件供审查",
"Extract test results from output JSONL file to individual Markdown or JSON files": "从输出 JSONL 文件中提取测试结果到单独的 Markdown 或 JSON 文件",
"Output directory (default: same as input file)": "输出目录 (默认: 与输入文件相同)",
"Output format: markdown, json": "输出格式: markdown, json",
}
// L Language switch
func L(words string) string {
var lang = os.Getenv("YAO_LANG")
if lang == "" {
return words
}
if trans, has := langs[words]; has {
return trans
}
return words
}
// Boot sets the configuration
func Boot() {
// Use root from Init() unless appPath is explicitly specified
root := config.Conf.Root
if appPath != "" {
r, err := filepath.Abs(appPath)
if err != nil {
exception.New("Root error %s", 500, err.Error()).Throw()
}
root = r
}
// Load .env file, preserving the correct root
if envFile != "" {
config.Conf = config.LoadFromWithRoot(envFile, root)
} else {
config.Conf = config.LoadFromWithRoot(filepath.Join(root, ".env"), root)
}
config.ApplyMode()
}