ffmcp - 受ffmpeg启发的人工智能命令行工具。通过统一的接口从命令行访问任何人工智能服务。
通过 pip 安装: pip install ffmcp | 通过 npm 安装: npm install -g ffmcp | 从源码安装: 见下文的 安装
最简单的安装 ffmcp 的方法是通过 pip:
# 安装基础包
pip install ffmcp
# 或者安装特定提供商
pip install ffmcp[openai]
pip install ffmcp[anthropic]
pip install ffmcp[zep] # Zep 记忆支持
pip install ffmcp[leann] # LEANN 记忆支持(可选,需要系统依赖)
pip install ffmcp[all] # 所有提供商(不包括 LEANN - 如需,请单独安装)
注意: 在 macOS 上使用 Homebrew Python 时,可能会遇到“外部管理环境”错误。使用虚拟环境:
python3 -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
pip install ffmcp
前提条件: 需要同时安装 Python 包(通过 pip)和 npm 包。
安装 Python 包(必需):
pip install ffmcp
安装 npm 包:
# 全局安装(用于 CLI 使用)
npm install -g ffmcp
# 或在项目中本地安装
npm install ffmcp
注意: npm 包是 Python CLI 的一个包装器。两个包都必须安装才能正常使用。
为了开发或获取最新功能:
# 克隆仓库
git clone https://github.com/brandonhenry/ffmcp.git
cd ffmcp
# 创建虚拟环境(推荐)
python3 -m venv venv
source venv/bin/activate # 在 Windows 上:venv\Scripts\activate
# 开发模式安装
pip install -e .
# 或安装特定提供商
pip install -e ".[openai]"
pip install -e ".[anthropic]"
pip install -e ".[all]"
需求:
# 设置 OpenAI API 密钥
ffmcp config -p openai -k YOUR_OPENAI_API_KEY
# 设置 Anthropic API 密钥
ffmcp config -p anthropic -k YOUR_ANTHROPIC_API_KEY
# 设置 Google Gemini API 密钥
ffmcp config -p gemini -k YOUR_GEMINI_API_KEY
# 设置 Groq API 密钥
ffmcp config -p groq -k YOUR_GROQ_API_KEY
# 设置 DeepSeek API 密钥
ffmcp config -p deepseek -k YOUR_DEEPSEEK_API_KEY
# 设置 Mistral AI API 密钥
ffmcp config -p mistral -k YOUR_MISTRAL_API_KEY
# 设置 Together AI API 密钥
ffmcp config -p together -k YOUR_TOGETHER_API_KEY
# 设置 Cohere API 密钥
ffmcp config -p cohere -k YOUR_COHERE_API_KEY
# 设置 Perplexity API 密钥
ffmcp config -p perplexity -k YOUR_PERPLEXITY_API_KEY
# 设置 AI33 API 密钥
ffmcp config -p ai33 -k YOUR_AI33_API_KEY
# 设置 AIMLAPI API 密钥
ffmcp config -p aimlapi -k YOUR_AIMLAPI_API_KEY
# 设置 ElevenLabs API 密钥(用于配音/TTS)
ffmcp config -p elevenlabs -k YOUR_ELEVENLABS_API_KEY
# 或使用环境变量(提供者名称大写)
export OPENAI_API_KEY=your_key
export ANTHROPIC_API_KEY=your_key
export GEMINI_API_KEY=your_key
export GROQ_API_KEY=your_key
export DEEPSEEK_API_KEY=your_key
export MISTRAL_API_KEY=
...
# 基本生成
ffmcp generate "编写一首关于编程的俳句"
# 使用特定提供商和模型
ffmcp generate "解释量子计算" -p openai -m gpt-4
ffmcp generate "解释量子计算" -p gemini -m gemini-1.5-pro
ffmcp generate "解释量子计算" -p groq -m llama-3.1-70b-versatile
ffmcp generate "解释量子计算" -p deepseek -m deepseek-chat
ffmcp generate "解释量子计算" -p mistral -m mistral-large-latest
ffmcp generate "解释量子计算" -p together -m meta-llama/Llama-3-70b-chat-hf
ffmcp generate "解释量子计算" -p cohere -m command-r-plus
ffmcp generate "解释量子计算" -p perplexity -m llama-3.1-sonar-large-128k-online
# 流式传输响应
ffmcp generate "讲一个故事" -s
# 使用系统消息
ffmcp generate "解决这个数学问题" --system "您是一位乐于助人的数学导师"
# 从文件读取
ffmcp generate -i prompt.txt -o output.txt
# 管道输入
echo "总结一下" | ffmcp generate
# 输出为 JSON
ffmcp generate "写一首俳句" --json
# 输出为数组
ffmcp generate "写一首俳句" --array
# 会话聊天
ffmcp chat "你好,你好吗?" -p anthropic
# 使用系统消息
ffmcp chat "2+2等于多少?" -s "您是一位乐于助人的数学导师"
# 使用线程(维护对话历史)
ffmcp chat "你好" -t conversation1
ffmcp chat "我刚才说了什么?" -t conversation1 # 记住之前的对话
# 输出为 JSON
ffmcp chat "写一首俳句" --json
# 输出为数组
ffmcp chat "写一首俳句" --array
# 线程管理
ffmcp thread create conversation1
ffmcp thread list
ffmcp thread use conversation1
ffmcp thread current
ffmcp thread clear conversation1
ffmcp thread delete conversation1
# 创建代理(任意提供商,默认启用操作)
ffmcp agent create myagent -p openai -m gpt-4o-mini -i "您是一位乐于助人的助手" --brain mybrain
ffmcp agent create gemini-agent -p gemini -m gemini-2.0-flash-exp -i "您是一位乐于助人的助手"
ffmcp agent create groq-agent -p groq -m llama-3.1-70b-versatile -i "您是一位乐于助人的助手"
# 创建带有语音的代理(用于 TTS)
ffmcp agent create myagent -p openai -m gpt-4o-mini -i "您是一位乐于助人的助手" --voice my-voice
# 从文件创建带有指令的代理
ffmcp agent create myagent -p openai -m gpt-4o-mini -f instructions.txt --brain mybrain
# 列出并选择活动代理
ffmcp agent list
ffmcp agent use myagent
# 显示详情
ffmcp agent show
# 线程管理(对话历史)
ffmcp agent thread create myagent thread1
ffmcp agent thread list myagent
ffmcp agent thread use myagent thread1
ffmcp agent thread current myagent
ffmcp agent thread clear myagent thread1
ffmcp agent thread delete myagent thread1
# 运行代理(自动使用活动线程)
ffmcp agent run "计划三天巴黎之旅并获取热门景点"
# 使用特定线程运行
ffmcp agent run "继续规划" --thread thread1
# 输出为 JSON
ffmcp agent run "写一份总结" --json
# 输出为数组
ffmcp agent run "写一份总结" --array
# 管理属性和操作
ffmcp agent prop set myagent timezone UTC
ffmcp agent action enable myagent web_fetch
ffmcp agent action disable myagent generate_image
参见 线程:对话历史 部分以获取详细的线程文档。
代理可以协同工作,在层级化的团队中完成复杂的任务。团队使用位于顶层的协调器代理来通过分配任务给成员或子团队来协调合作。所有活动都向上层流动,顶层协调器可以通过共享的大脑/记忆看到一切。
# 创建专业代理
ffmcp agent create researcher -p openai -m gpt-4o-mini -i "您是一位研究专家。专注于查找和分析信息。"
ffmcp agent create writer -p openai -m gpt-4o-mini -i "您是一位写作专家。专注于创作清晰、结构良好的内容。"
ffmcp agent create orchestrator -p openai -m gpt-4o-mini -i "您是一位项目协调员。分解任务并分配给团队成员。"
# 启用协调器代理的委托操作(允许其分配给其他代理)
ffmcp agent action enable orchestrator delegate_to_agent
# 创建一个简单的团队,包含协调器和成员
ffmcp team create research-team -o orchestrator -m researcher -m writer
# 创建一个共享大脑用于团队记忆(向上层流动)
ffmcp brain create team-brain
ffmcp team create project-team -o orchestrator -m researcher -m writer -b team-brain
# 创建嵌套团队(团队中的团队)
# 首先创建子团队
ffmcp agent create sub-orchestrator-1 -p openai -m gpt-4o-mini -i "您协调一个研究子团队"
ffmcp agent action enable sub-orchestrator-1 delegate_to_agent
ffmcp team create research-sub-team -o sub-orchestrator-1 -m researcher -b team-brain
ffmcp agent create sub-orchestrator-2 -p openai -m gpt-4o-mini -i "您协调一个写作子团队"
ffmcp agent action enable sub-orchestrator--2 delegate_to_agent
ffmcp team create writing-sub-team -o sub-orchestrator-2 -m writer -b team-brain
# 创建顶级团队,包含子团队
ffmcp team create main-team -o orchestrator -s research-sub-team -s writing-sub-team -b team-brain
# 使用层级化团队运行任务(协调器根据需要分配任务)
ffmcp team run "研究并撰写关于量子计算的综合报告" --team main-team
# 输出为 JSON
ffmcp team run "创建报告" --team main-team --json
# 输出为数组
ffmcp team run "创建报告" --team main-team --array
# 列出团队
ffmcp team list
# 显示团队详情,包括层级
ffmcp team show main-team
# 添加/移除成员和子团队
ffmcp team add-member main-team analyst
ffmcp team add-sub-team main-team analysis-sub-team
ffmcp team remove-member main-team analyst
# 设置不同的协调器
ffmcp team set-orchestrator main-team new-orchestrator
层级化团队的工作方式:
示例层级结构:
main-team (协调器: ceo)
├── research-sub-team (协调器: research-manager)
│ ├── researcher-1
│ └── researcher-2
├── writing-sub-team (协调器: writing-manager)
│ ├── writer-1
│ └── writer-2
└── 直接成员 (分析师)
示例工作流程:
# 1. 为不同角色创建代理
ffmcp agent create ceo -p openai -m gpt-4o-mini -i "您是一位 CEO,负责协调多个团队"
ffmcp agent create research-manager -p openai -m gpt-4o-mini -i "您管理一个研究团队"
ffmcp agent create writing-manager -p openai -m gpt-4o-mini -i "您管理一个写作团队"
ffmcp agent create researcher-1 -p openai -m gpt-4o-mini -i "您是一位研究员"
ffmcp agent create writer-1 -p openai -m gpt-4o-mini -i "您是一位作家"
# 2. 为协调器启用委托
ffmcp agent action enable ceo delegate_to_agent
ffmcp agent action enable research-manager delegate_to_agent
ffmcp agent action enable writing-manager delegate_to_agent
# 3. 创建共享大脑用于团队记忆
ffmcp brain create org-brain
# 4. 创建子团队
ffmcp team create research-team -o research-manager -m researcher-1 -b org-brain
ffmcp team create writing-team -o writing-manager -m writer-1 -b org-brain
# 5. 创建顶级团队,包含子团队
ffmcp team create org-team -o ceo -s research-team -s writing-team -b org-brain
# 6. 运行复杂任务 - CEO 负责协调,分配给子团队,并查看所有活动
ffmcp team run "创建一份综合市场分析报告" --team org-team
# 分析图像
ffmcp openai vision "这张图片里有什么?" image1.jpg image2.png
# 使用自定义模型和选项
ffmcp openai vision "描述一下" photo.jpg -m gpt-4o -t 0.5
# 使用 DALL·E 3 生成图像
ffmcp openai image "未来城市的日落景象"
# DALL·E 2 使用自定义大小
ffmcp openai image "戴着墨镜的猫" -m dall-e-2 --size 512x512
# 高质量自然风格
ffmcp openai image "抽象艺术" --quality hd --style natural
# 将 URL 保存到文件
ffmcp openai image "美丽的风景" -o image_url.txt
# 将音频转录成文本
ffmcp openai transcribe audio.mp3
# 使用语言提示
ffmcp openai transcribe audio.mp3 -l es
# 使用提示以提高准确性
ffmcp openai transcribe meeting.mp3 -p "这是一场关于 AI 的技术会议"
# 输出为带时间戳的 JSON
ffmcp openai transcribe audio.mp3 --json -o transcript.json
# 将音频翻译成英文
ffmcp openai translate spanish_audio.mp3
# 使用提示