Open godkun opened 1 month ago
还是可以补充一些说明: LangChain是基于函数式编程的设计思想设计的,符合算法工程师的过往使用习惯,每一个步骤都通过一行或几行代码进行控制 Agently是基于面向对象编程的设计思想设计的,会希望把更多的互动封装到一个可交互的agent对象上,开发者开发的时候,主要是面向一个个agent对象实例来发出指令和获得请求结果
对于同样是请模型以结构化数据的格式输出一个笑话的实现代码,通过对比能更明显地看出二者的差别:
from langchain.output_parsers.openai_tools import PydanticToolsParser
class Joke(BaseModel):
"""Joke to tell user."""
setup: str = Field(description="question to set up a joke")
punchline: str = Field(description="answer to resolve the joke")
# You can add custom validation logic easily with Pydantic.
@validator("setup")
def question_ends_with_question_mark(cls, field):
if field[-1] != "?":
raise ValueError("Badly formed question!")
return field
parser = PydanticToolsParser(tools=[Joke])
model = ChatOpenAI(model="gpt-3.5-turbo", temperature=0).bind_tools([Joke])
chain = prompt | model | parser
chain.invoke({"input": "tell me a joke"})
[Joke(setup="Why don't scientists trust atoms?", punchline='Because they make up everything!')]
import Agently
agent = (
Agently.create_agent()
.set_settings("current_model", "OpenAI")
.set_settings("model.OpenAI.auth.api_key", "xxxxxx")
.set_settings(
"model.OpenAI.options",
{
"model": "gpt-3.5-turbo",
"temperature": 0,
}
)
)
result = (
agent
.input("tell me a joke")
.output({
"setup": ("str", "question to set up a joke"),
"punchline": ("str", "answer to resolve the joke"),
})
.start()
)
print(result)
{ "setup": "Why don't scientists trust atoms?", "punchline": "Because they make up everything!" }
workflow 初看的时候眼前一亮,但实际体验的关联出参入参还是挺心累,不知道是不是我的打开方式不对。 @Maplemx
workflow 初看的时候眼前一亮,但实际体验的关联出参入参还是挺心累,不知道是不是我的打开方式不对。 @Maplemx
不是,我们很快就会发布新的版本,优化了workflow的数据传递逻辑,你的感觉是对的,我们已经调整了
workflow 初看的时候眼前一亮,但实际体验的关联出参入参还是挺心累,不知道是不是我的打开方式不对。 @Maplemx
不是,我们很快就会发布新的版本,优化了workflow的数据传递逻辑,你的感觉是对的,我们已经调整了
这两天也体验了一下metagpt 微软的autogpt 和 langgraph,整体感觉还是agently用起来会比较顺手【写代码的时候思路会更顺畅,祝做大做强!】。
另外,多agent自动交互这块感觉可能是agently比较欠缺的, @Maplemx 后续有啥规划吗?
另外,多agent自动交互这块感觉可能是agently比较欠缺的, @Maplemx 后续有啥规划吗?
多Agent自动交互其实可以通过workflow和Agent之间的请求连接自主构建,你可以这样理解:
找到特定场景的Agent自动交互方法,是AI应用的一种最终形态(但不是唯一形态)
我们提供了由Agent代理工程师对模型的请求(点),可以承载Agent请求以及其他程序逻辑的Workflow Chunk(块),再支持将多个Workflow Chunk连接成单向有序可成环状的运行流(网),并在运行流中支持通过外部配置文件影响部分块的执行效果(分层),形成了对AI应用的基础框架架构。
多Agent自动交互可以在这个基础架构中,使用总控路由、Agent自发轮询、工作流事件触发等多种不同设计思路去完成设计。
我们之前也做过一些小型的样例,可以参考:
飞桨合作项目:https://aistudio.baidu.com/projectdetail/7178289 的第4部分
角色创作Agent和角色扮演Agent的单次信息交互:https://github.com/Maplemx/Agently/blob/main/playground/character_change_behaviours_according_mood_status.ipynb
workflow 初看的时候眼前一亮,但实际体验的关联出参入参还是挺心累,不知道是不是我的打开方式不对。 @Maplemx
不是,我们很快就会发布新的版本,优化了workflow的数据传递逻辑,你的感觉是对的,我们已经调整了
3.3新版本已经发布,修订了workflow的数据传递逻辑,相关的开发手册正在撰写中
没事了,reame.md文档中看到相关回答了