Council:AI 智能体平台,掌控流程与可扩展监督
项目介绍
Council 是一个开源的 Python(即将支持 Rust)平台,专为快速开发和稳健部署定制化的生成式 AI 应用而设计。通过团队化的 agents
,Council 扩展了大型语言模型(LLM)工具生态系统,提供了先进的控制流程和可扩展的监督机制。用户可以利用 Council 强大的控制流方法,通过 Controllers、Filters、Evaluators 和 Budgets 来创建行为可预测的复杂智能体。这使得智能体能够在预算约束下自动路由、比较、评估和选择最佳结果。
项目技术分析
Council 的核心架构包括多个关键组件:
- Agent:封装了从输入提示到最终响应的端到端应用逻辑,跨越 Controller、Evaluation 和注册的 Skills 链。
- Controller:根据提示和提示历史确定用户意图,并将提示路由到一个或多个注册的 Chains。Controller 还负责控制 Chains 的调用方式(串行或并行)、分配计算预算以及处理超出预算的 Chains。
- Skill:接收输入并返回输出的服务,可以封装各种任务,如调用公开的 LLM API 或本地的小型语言模型。
- Chain:由 Skills 组成的定向图,提供单一的执行入口。用户可以自定义或复用现有的 Chains。
- Evaluator:负责在运行时评估一个或多个 Skills/Chains 的质量,选择最佳响应或满足质量阈值的响应。
- Filter:负责过滤返回给 Controller 的响应。
- State Management:提供原生对象来管理 Agent、Chain 和 Skill 的上下文,便于跟踪消息历史和中间结果。
项目及技术应用场景
Council 适用于需要复杂 AI 智能体协作的场景,如:
- 企业级 AI 应用:通过 Council 的控制流和监督机制,企业可以构建和部署行为可预测、质量可控的 AI 应用。
- 多智能体协作:在需要多个智能体协同工作的场景中,Council 提供了高效的协作框架。
- 大规模部署:通过 Kubernetes 集成,Council 支持在多个部署平台上无缝部署和监控智能体。
项目特点
- 支持复杂智能体:Council 允许创建能够在预算约束下迭代任务、探索替代方案、创建和完成子目标并评估质量的可靠智能体。
- 面向数据科学家:作为一个 Python 库,Council 易于集成到现有的开发环境中,并与流行的框架(如 LangChain)无缝对接。
- 无缝生产部署:通过 Kubernetes 集成,Council 支持在多个平台上轻松打包、部署和监控智能体。
- 生态系统连接性:Council 与不断增长的 AI 智能体生态系统连接,支持与 LangChain、LlamaIndex 和领先的 AI 模型集成。
- 可扩展监督:内置工具用于管理、版本控制、监控、评估和控制部署的智能体。
快速开始
安装
推荐使用 pip 从 Pypi 安装:
pip install council-ai
设置
在 .env
文件中设置所需的 API 密钥(如 OpenAI),参考 .env.example
文件。
使用示例
from council.chains import Chain
from council.skills import LLMSkill
from council.llm import OpenAILLM
import dotenv
dotenv.load_dotenv()
openai_llm = OpenAILLM.from_env()
prompt = "You are responding to every prompt with a short poem titled hello world"
hw_skill = LLMSkill(llm=openai_llm, system_prompt=prompt)
hw_chain = Chain(name="Hello World", description="Answers with a poem about titled Hello World", runners=[hw_skill])
from council.controllers import LLMController
controller = LLMController(llm=openai_llm, chains=[hw_chain], response_threshold=5)
from council.evaluators import LLMEvaluator
evaluator = LLMEvaluator(llm=openai_llm)
from council.agents import Agent
from council.filters import BasicFilter
agent = Agent(controller=controller, evaluator=evaluator, filter=BasicFilter())
result = agent.execute_from_user_message("hello world?!")
print(result.best_message.message)
文档与支持
详细文档请访问 council.dev。如需帮助,请提交 GitHub 问题或通过 Discord 联系团队。
社区与贡献
Council 是一个活跃开发的项目,欢迎所有贡献、拉取请求、功能请求或问题报告。加入我们的 Discord 社区,与核心开发团队和用户交流。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考