OpenCoworker:基于aisuite的桌面AI助手
OpenCoworker是一款运行在桌面上的AI助手,它不仅能陪用户畅快聊天,还能在电脑上开展深度研究并执行任务。它可在获得授权后读取文件以了解上下文,读取或发送消息(如Slack、电子邮件等),还能生成像PDF报告、文档、电子表格这样的实际成果。此外,它支持定时自动化操作,例如为用户提供每日新闻摘要。使用时,用户需要自带API密钥(OpenAI、Anthropic、Google),也可以通过Ollama完全在本地运行,确保数据始终保留在自己的设备上。
下载渠道方面,macOS适用于macOS 13及以上版本(Apple Silicon),Windows适用于Windows 10/11(x64)。快速入门涵盖安装、连接模型、执行首个任务和自动化操作等内容。其源代码存放在 `platform/` 目录下,为用户在aisuite上构建自己的代理框架提供了实用参考。
aisuite:轻量级Python库,助力大语言模型开发
aisuite是一个用于构建大语言模型应用的轻量级Python库,它分为两层:跨提供商的统一聊天完成API,以及基于工具和工具包的代理API。这个仓库也是OpenCoworker的所在地,它是一个使用aisuite构建的桌面AI协作助手。
具体层级如下:OpenCoworker用于执行日常任务的代理框架;Agents API · Toolkits · MCP可跨多个大语言模型构建代理;Chat Completions API是跨多个大语言模型提供商的统一API;支持的大语言模型提供商有OpenAI、Anthropic、Google、Ollama等。
Chat Completions API
这是一个统一的、类似OpenAI风格的接口,支持OpenAI、Anthropic、Google、Mistral、Hugging Face、AWS、Cohere、Ollama、OpenRouter等众多提供商。用户只需更改一个字符串,就能轻松切换提供商。
Agents API · Toolkits · MCP
它允许用户将真实的Python函数作为工具提供给模型,运行多轮循环,附加现成的工具包(文件、Git、Shell)或任何MCP服务器,并通过工具策略进行管理。
OpenCoworker
这是一个使用aisuite构建的桌面AI协作助手,以应用程序的形式提供,方便用户处理日常任务。
安装指南
aisuite库(Python)
用户可以安装基础包,也可以包含计划使用的提供商的SDK。如 `pip install aisuite` 为基础包,不包含提供商SDK;`pip install 'aisuite[anthropic]'` 包含特定提供商的SDK;`pip install 'aisuite[all]'` 包含所有提供商的SDK。同时,用户需要为调用的提供商准备API密钥。“Chat Completions快速入门”会介绍密钥设置和首次调用的相关内容。
OpenCoworker应用(桌面)
下载安装程序,并自带API密钥(也可以使用Ollama运行本地模型),适用于macOS(Apple Silicon)和Windows 10/11(x64)。
Chat Completions:跨提供商的统一API
聊天API为模型交互提供了高级抽象。它以与提供商无关的方式支持所有核心参数(温度、最大令牌数、工具等),并规范了请求和响应结构,让用户可以专注于逻辑实现,而不必担心SDK差异。模型名称采用 `:;` 格式,aisuite会使用正确的参数将调用路由到正确的提供商。快速入门可查看 `docs/chat-completions-quickstart.md`,其中包含安装、密钥设置、本地模型和更多示例。
Agents:为模型赋予真实工具
aisuite让工具调用变得简单,只需传递普通的Python函数,它就能生成模式、执行调用并将结果反馈给模型。
带 `max_turns` 的工具调用
设置 `max_turns` 后,aisuite会发送用户的消息,执行模型请求的任何工具调用,将结果返回给模型,并重复此过程,直到对话完成。如果用户想继续对话,`response.choices[0].intermediate_messages` 会记录完整的工具交互历史。如果用户更喜欢完全手动控制,可以省略 `max_turns` 并传递OpenAI格式的JSON工具规范,aisuite会返回模型的工具调用请求,用户可以自行运行循环。两种风格的示例可查看 `examples/tool_calling_abstraction.ipynb`。
代理API
对于长时间运行的结构化工作,有一流的代理API,用户只需声明一次代理,使用运行器(Runner)运行它,并附加工具包(为文件、Git和Shell预构建的沙盒工具集)。代理API还为生产环境提供了必要的组件,包括工具策略,如 `RequireApprovalPolicy`、允许/拒绝列表,或用户自己的可调用函数,用于决定哪些工具调用可以运行;状态存储,可持久化和恢复运行状态(内存、文件或Postgres),并跨进程继续对话;工件与跟踪,可捕获代理产生的内容以及每一步操作。
MCP工具
aisuite原生支持模型上下文协议(Model Context Protocol),因此可以直接将任何MCP服务器的工具提供给模型,无需额外的样板代码(`pip install 'aisuite[mcp]'`)。若要实现可重用的连接、安全过滤和工具前缀,可以使用显式的 `MCPClient`。快速入门可查看 `docs/agents-quickstart.md`,其中深入介绍手动工具处理、完整的代理API、策略、状态存储和MCP。
扩展aisuite:添加新提供商
通过实现轻量级适配器,用户可以添加新的提供商。系统采用命名约定进行发现,模块文件为 `_provider.py`,类名为 `Provider`(首字母大写)。这种约定确保了一致性,并支持自动加载新的集成。
贡献代码
欢迎大家贡献代码。请查看《贡献指南》,并加入Discord进行讨论。
许可协议
本项目采用MIT许可证发布,可免费用于商业和非商业用途。